#include <iostream>
#include <pthread.h>
#include <unistd.h>
#include <memory>
#include <functional>
using std::cin;
using std::cout;
using std::endl;
class Foo
{
public:
    static void *one()
    {
        printf("one");
        return nullptr;
    }
    static void *two()
    {
        printf("two");
        return nullptr;
    }
    static void *three()
    {
        printf("three");
        return nullptr;
    }
};

pthread_t t1, t2, t3;
Foo fo;

main()
{
    while (1)
    {
        int n;
        cin >> n;
        if (n == 1)
        {
            pthread_create(&t1, nullptr, [](void *avg) -> void *
                           {fo.one();return nullptr; }, nullptr);
            pthread_join(t1, nullptr);
        }
        else if (n == 2)
        {
            pthread_create(&t1, nullptr, [](void *avg) -> void *
                           {fo.two();return nullptr; }, nullptr);
            pthread_join(t1, nullptr);
        }
        else if (n == 3)
        {
            pthread_create(&t1, nullptr, [](void *avg) -> void *
                           {fo.three();return nullptr; }, nullptr);
            pthread_join(t1, nullptr);
        }
    }
    return 0;
}

// int main()
// {

//     cout<<"444"<<endl;

//     return 0;
// }

// void *test1(void *arg)
// {
//     int n = 100;
//     while (n--)
//     {
//         sleep(1);
//         cout << pthread_self() << endl;
//         cout << "我是子线程  pid:" << getpid() << endl;
//     }
//     return (void *)"大nb";
// }
// int i = 0;

// pthread_mutex_t mutex;
// pthread_cond_t condA;
// pthread_cond_t condB;
// int count = 1;

// void *printA(void *str)
// {
//     while (1)
//     {
//         pthread_mutex_lock(&mutex);
//         while (count == 0)
//         {
//             pthread_cond_wait(&condA, &mutex);
//         }
//         cout << "我是线程A" << endl;
//         count=0;
//         pthread_mutex_unlock(&mutex);
//         pthread_cond_signal(&condB);
//     }
// }
// void *printB(void *str)
// {
//     while (2)
//     {
//         pthread_mutex_lock(&mutex);
//         while (count == 1)
//         {
//             pthread_cond_wait(&condB, &mutex);
//         }
//         cout << "我是线程B" << endl;
//         count=1;
//         pthread_cond_signal(&condA);
//         pthread_mutex_unlock(&mutex);
//     }
// }

// int main()
// {
//     pthread_mutex_init(&mutex, nullptr);
//     pthread_cond_init(&condA, nullptr);
//     pthread_cond_init(&condB, nullptr);
//     pthread_t thid1, thid2;
//     char *str = nullptr;
//     pthread_create(&thid1, nullptr, printA, (char *)"钟哥无敌");
//     pthread_create(&thid2, nullptr, printB, (char *)"钟哥无敌");
//     pthread_join(thid1, (void **)&str);
//     pthread_join(thid1, (void **)&str);
//     cout << str << endl;
//     return 0;
// }